package com.iwomy.secureplat.platform.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iwomy.secureplat.common.core.util.R;
import com.iwomy.secureplat.common.data.datascope.DataScope;
import com.iwomy.secureplat.platform.dto.AlarmLoggingDTO;
import com.iwomy.secureplat.platform.entity.AlarmLoggingEntity;
import com.iwomy.secureplat.platform.vo.AlarmLoggingVO;

import java.util.List;

public interface AlarmLoggingService extends IService<AlarmLoggingEntity> {
	Page<AlarmLoggingVO> deviceDetailsPage(Page page, AlarmLoggingDTO alarmLoggingDTO);

	Page<AlarmLoggingVO> getImeiList(Page page, AlarmLoggingDTO alarmLoggingDTO);

	AlarmLoggingVO getById(Long id);

	Page<AlarmLoggingVO> getAlarmLoggingPage(Page page, AlarmLoggingDTO alarmLoggingDTO);

	long countByScope(LambdaQueryWrapper<AlarmLoggingEntity> wrapper,DataScope dataScope);


	/**
	 * 根据imei查未处理报警数量
	 * @param imei
	 * @return
	 */
	long selectCountByImei(String imei);

	AlarmLoggingEntity oneByImeiDesc(String imei);

	List<AlarmLoggingEntity> listByScope(LambdaQueryWrapper<AlarmLoggingEntity> wrapper, DataScope dataScope);

	R threeDaysAlarmCount();

	List export(AlarmLoggingDTO alarmLoggingDTO);
}